leave is emitted before the new contains-pointer value is set, so the
signal handler wasn't working right.
gtk_widget_add_controller (GTK_WIDGET (popover), controller);
controller = gtk_event_controller_motion_new ();
- g_signal_connect (controller, "leave", G_CALLBACK (leave_cb), popover);
+ g_signal_connect (controller, "notify::contains-pointer", G_CALLBACK (leave_cb), popover);
gtk_widget_add_controller (GTK_WIDGET (popover), controller);
controllers = gtk_widget_list_controllers (GTK_WIDGET (popover), GTK_PHASE_CAPTURE, &n_controllers);